//#include <iostream>
#include <mysql/mysql.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <shadow.h>

/*struct spwdsend
{
    char sp_namp[100];         // Login name
        char sp_pwdp[100];         // Encrypted password
        long sp_lstchg;        // Date of last change
        long sp_min;          //  Min #days between changes
        long sp_max;          //  Max #days between changes
        long sp_warn;         //  #days before pwd expires to warn user to change it
        long sp_inact;        //  #days after pwd expires until account is disabled
        long sp_expire;        // #days since 1970-01-01 until account is disabled
        unsigned long sp_flag; // Reserved
};

  struct passwdsend
{
	char pw_name[100];               // Username.
	char pw_passwd[2];              //Password.
	__uid_t pw_uid;              // User ID.
	__gid_t pw_gid;              // Group ID.
	char pw_gecos[100];              // Real name.
	char pw_dir[100];                // Home directory.
	char pw_shell[100];              // Shell program.
};

*/
/*这个函数用来执行传入的sql語句*/
void exe_sql(char* sql);

//void query_uspwd(char* uname,struct spwdsend *p);

/*根据用户名返回User_ID , User_Info 中的所有信息，  完善数据库后应该返回struct结构体中的所有信息*/
//I'a better there is a struct
void query_user(char* uname,struct passwdsend *p);
//void query_uspwd(char * uname,struct passwdsend *p);
  /*
根据用户名返回用户shadow密码
*/
void query_uspwd(char* uname,struct spwdsend *p);
/*根据uid返回用户信息*/
void query_uid(char* uid,struct passwdsend *p);

/*
*  根据用户名 和 服务器名称来判断用户是否有权限登录该服务器
*  返回1 =====true;
* -1===false;
* 2 ===no user;
* 3====no server
*/

//建议修改：
//分为三段 类似原来到模型

int query_name(char *uname, char * sname);
//遍历组中所有用户的信息
void search_members(int Group_ID);


/*
方案一：
遍历用户信息，根据用户名返回passwdsend结构体
enum nss_status
query_user(char* uname,struct passwdsend *p);
方案二：
遍历用户信息，根据用户名
void query_user(char* uname,int* socketFD);


*/



